package com.keba.lamp.office.vo;


import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Builder;
import lombok.Data;

import java.util.Map;

/**
 * name	Body	是	string	文档名称
 * size	Body	是	integer	文档大小，单位 byte
 * digest	Body	是	map<string, string>	文档校验和，key 为算法，value 为结果值
 * is_manual	Body	是	boolean	是否手动保存，即用户手动 ctrl/cmd + s 或点击保存版本触发的保存，区别于定时触发的自动保存
 */
@Data
@Builder
public class OfficeUploadAddressVO {
    /**
     * 文档名称
     */
    @Schema(description = "文档名称")
    @NotBlank(message = "文档名称不能为空")
    @Size(max = 255, message = "文档名称不能超过{max}")
    private String name;
    /**
     * 文档大小，单位 byte
     */
    @Schema(description = "文档大小，单位 byte")
    @Size(min = 1, message = "文档大小不能为空")
    private Integer size;
    /**
     * 文档校验和，key 为算法，value 为结果值
     */
    @Schema(description = "文档校验和，key 为算法，value 为结果值")
    @NotNull(message = "文档校验和不能为空")
    private Map<String, String> digest;
    /**
     * 是否手动保存，即用户手动 ctrl/cmd + s 或点击保存版本触发的保存，区别于定时触发的自动保存
     */
    @Schema(description = "是否手动保存，即用户手动 ctrl/cmd + s 或点击保存版本触发的保存，区别于定时触发的自动保存")
    @NotNull(message = "是否手动保存不能为空")
    private Boolean is_manual;



}
